A number of systems and programs are offered on the market for the design, the engineering and the manufacturing of objects. CAD is an acronym for Computer-Aided Design, e.g. it relates to software solutions for designing an object. CAE is an acronym for Computer-Aided Engineering, e.g. it relates to software solutions for simulating the physical behavior of a future product. CAM is an acronym for Computer-Aided Manufacturing, e.g. it relates to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role as regards the efficiency of the technique. These techniques may be embedded within Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that helps companies to share product data, apply common processes, and leverage corporate knowledge for the development of products from conception to the end of their life, across the concept of extended enterprise.
The PLM solutions provided by Dassault Systemes (under the trademarks CATIA, ENOVIA and DELMIA) provide an Engineering Hub, which organizes product engineering knowledge, a Manufacturing Hub, which manages manufacturing engineering knowledge, and an Enterprise Hub which enables enterprise integrations and connections into both the Engineering and Manufacturing Hubs. All together the system delivers an open object model linking products, processes, resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production and service.
CAD systems provide an intuitive and flexible user interface for designing precise 3D parts, from sketching in an assembly context to iterative detailed design. Such a solution is provided by CATIA Part Design (trademark) application which combines the power of feature-based design with the flexibility of a Boolean approach, offers a highly productive and intuitive design environment with multiple design methodologies, such as post-design and local 3D parameterization.
During the process of parts design, the designer may need to create several identical features from an existing one and to simultaneously position them on a part. To this aim, the designer generally uses two-dimensional patterns that allow to duplicate an original feature at a location chosen in the part by the designer. Common patterns are rectangular pattern and circular pattern. The designer may also need a particular pattern (also referred to as user pattern) that is created by hand by the designer. For instance, the designer selects a set of points in a plane on which the original feature will be duplicated.
During the process of assembly design, the designer may need to create several instances of an existing reference and to simultaneously position them in a three-dimensional scene according to pattern specifications. In this process, the user may want to reuse existing pattern specifications such as a part pattern.
Two approaches are currently used to create a pattern of objects. The first approach is a reuse pattern procedural approach: giving an object A1 and an existing pattern P of objects {B1, B2 . . . Bn}, the user has to position the object A1 relatively to one element of {B1 . . . Bn}. Then a procedure generates and positions the instances {A2 . . . An} of the object A1 according to the specifications of the pattern P (and only according to these specifications).
The second approach is an assembly pattern procedural approach: giving an object A1 and some pattern specifications (for instance, a pattern specification may be 5 instances around an axis with the third instance missing), a procedure generates and position the instances {A2, . . . , An} according to given pattern specifications (and only according to these specifications).
Both described approaches suffer several drawbacks. Firstly, the creation of a three-dimensional pattern is not possible because state of the art technologies only deal with two-dimensional patterns: indeed, the instances of the objects of the pattern assembly are positioned on a plane. Secondly, there is no way to reuse a pattern defined in a reference catalog; current reuse pattern technology requires that the reused pattern and the reusing pattern are in the same three dimensional scene. Therefore, it is not possible to provide to the designer a library of pattern. Thirdly, the known approaches for creating a pattern of objects are based on a procedure that does not permit to respect all the constraints between the objects and other elements (because the procedure is outside the constraints mathematical solver), e.g. two objects of the pattern constrained to be on the same plane. Fourthly, it is not possible to apply external constraints on the specifications of the pattern. For instance, the action consisting on constraining the rotation axis of a circular pattern on another object is not permitted.
Within this context, there is still a need for an improved method for designing a three-dimensional modeled assembly of objects in a three-dimensional scene.